using System.Diagnostics;
using Rhizome.Contract;

namespace Rhizome.Model
{
    public abstract class CriterionBase<TPlant> : RhizomeElement, ICriterion
    {
    	public TPlant Plant
        {
            [DebuggerStepThrough]
            get { return (TPlant) GetValue(PlantProperty); }
			[DebuggerStepThrough]
			set { SetValue(PlantProperty, value); }
        }

        #region ICriterion Members

        public abstract bool Test();

        #endregion
    }
}